package com.w.sc.common.vo;

import com.w.sc.common.type.RType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class R {
    /**
     * 状态码
     */
    private Integer code;
    /**
     * 状态码说明信息
     */
    private String msg;
    /**
     * 结果内容
     */
    private Object data;

    /**
     * 操作成功
     *
     * @param msg  内容
     * @param data 结果
     * @return
     */
    public static R ok(String msg, Object data) {
        return new R(RType.成功.getCode(), msg, data);
    }

    /**
     * 操作成功
     *
     * @param data 结果
     * @return
     */
    public static R ok(Object data) {
        return ok("操作成功", data);
    }

    /**
     * 操作成功
     *
     * @return
     */
    public static R ok() {
        return ok(null);
    }

    /**
     * 操作失败
     *
     * @param data 结果
     * @return
     */
    public static R fail(Object data) {
        return new R(RType.失败.getCode(), "操作失败！", data);
    }

    /**
     * 操作失败
     *
     * @return
     */
    public static R fail() {
        return fail(null);
    }
}

